Skip to content

WIP: libs: arch: interchange: cell bel mapping implementation #1927

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

acomodi
Copy link
Collaborator

@acomodi acomodi commented Nov 29, 2021

Description

This PR builds on top of #1926.

The changes include:

  • Improvement of the cell to bel mapping, or in other words the mapping between a model primitive and its pb type, to allow the generation of multiple modes based on the various models that can be implemented in a pb_type
  • move the package pad bels information in the architecture reader, rather than having them in the arch structure
  • refactoring of some parts of the interchange reader, for instance by adopting the string internment to translate from an index to its string value.

Motivation and Context

Improvement in the Interchange support

How Has This Been Tested?

Tests in Catch2 framework

Types of changes

  • Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed

mtdudek and others added 6 commits November 29, 2021 12:06
This PR adds basic support for the architecture reading:
  - Device
  - Layout
  - Switches

Signed-off-by: Alessandro Comodi <[email protected]>
Co-authored-by: Maciej Dudek <[email protected]>
Co-authored-by: Alessandro Comodi <[email protected]>
This commit also reworks the way the name is assigned to the null types

Signed-off-by: Alessandro Comodi <[email protected]>
Signed-off-by: Alessandro Comodi <[email protected]>
@github-actions github-actions bot added libarchfpga Library for handling FPGA Architecture descriptions libvtrutil VPR VPR FPGA Placement & Routing Tool labels Nov 29, 2021
@tangxifan
Copy link
Contributor

@acomodi @vaughnbetz
To follow up our discussion on placing the IO files, should we try it on the libarchfpga directory?
Since we have two readers and writers, I am thinking if we can reorganize the src directory as follows.
There will be four subdirectories, base, xml_io, interchange_io and utils

  • Thebase subdirectory contains data structures, i.e., physical_types.c|h, arch_types.h etc.
  • The xml_io subdirectory contains source files for XML reader and writer
  • The interchange_io subdirectory contains source files for FPGA interchange reader and writer
  • The utils contains any utility functions for data structure and IO reader/writers.

Let me know if this makes sense or not.

@vaughnbetz
Copy link
Contributor

That seems reasonable to me.

@acomodi
Copy link
Collaborator Author

acomodi commented Dec 15, 2021

Superseded by #1937. Closing

In regards of changing the directory structure to separate files in their different scope, I think it would be better to do so after the main interchange architecture reader is in place, so that we can then open a PR which only purpose will be to change the directory structures, without affecting the source file behavior.

@acomodi acomodi closed this Dec 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
libarchfpga Library for handling FPGA Architecture descriptions libvtrutil VPR VPR FPGA Placement & Routing Tool
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants